# -*- coding: latin-1 -*-
'''
Created on 03/10/2011

@author: nmedina
'''
import wx
import sys
import Excepciones
class FuncionesGenerales():
    def __init__(self,Seguridad = None):
        self.__security = Seguridad
    def PintarBotonGradient(self,t
                            ,SetTopStartColour = wx.Colour(102,153,204)
                            ,SetTopEndColour = wx.Colour(204,255,255)
                            ,SetBottomStartColour = wx.Colour(204,255,255)
                            ,SetBottomEndColour = wx.Colour(102,153,204)
                            ,SetPressedTopColour = '#3366FF'
                            ,SetPressedBottomColour = '#3399FF'
                            ,SetForegroundColour = '#000033'):
        t.SetTopStartColour(SetTopStartColour)
        t.SetTopEndColour(SetTopEndColour)
        t.SetBottomStartColour(SetBottomStartColour)
        t.SetBottomEndColour(SetBottomEndColour)
        t.SetPressedTopColour(SetPressedTopColour)
        t.SetPressedBottomColour(SetPressedBottomColour)
        t.SetForegroundColour(SetForegroundColour)
    def BuscarEnCombo(self,Combo,Itemdata):
        CantItem = Combo.GetCount()
        encontro = False
        for i in range(CantItem):
            if str(Combo.GetClientData(i)) == str(Itemdata):
                Combo.SetSelection(i)
                encontro = True
                break
        return encontro
    def BuscarEnComboText(self,Combo,text):
        CantItem = Combo.GetCount()
        encontro = False
        for i in range(CantItem):
            Combo.SetSelection(i)
            if str(Combo.GetValue()) == str(text):
                encontro = True
                break
        if encontro == False:
            Combo.SetSelection(wx.NOT_FOUND)
        return encontro
    def FormatearFechayyymmdd(self,mFecha):
        if isinstance(mFecha,wx.DateTime)== True:
            lfecha = wx.DateTime()
            lfecha = mFecha
            yyyy = ""
            mm = ""
            dd = ""
            yyyy = str(lfecha.GetYear())
            if (lfecha.GetMonth()+ 1)> 9 :
                mm = str(lfecha.GetMonth() + 1)
            else:
                mm = "0" + str(lfecha.GetMonth() + 1)
                
            if (lfecha.GetDay())> 9 :
                dd = str(lfecha.GetDay())
            else:
                dd = "0" + str(lfecha.GetDay())
                
            return yyyy+mm+dd
        else:
            raise Excepciones.Genericas.Generico_ErrorDeValidacion(
                  "FuncionesGenerales"
                  , "FormatearFechayyymmdd"
                  , "se esperaba parametro del tipo wx.DateTime")
    def Remplazar_Caracteres_Xml(self,mCadena):
        mCadena = mCadena.replace("&","&amp;").replace("<","&lt;")
        mCadena = mCadena.replace("\"","&quot;").replace(">","&gt;")
        return mCadena
                
            
        
                
    
        
import math
class Paginacion():
    def __init__(self):
        self.__CantRegistros = 0
        self.__PageSize = 10
        self.__TotalPaginas = 0
        self.__PaginaActual = 0
    def getCantRegistros(self):
        return self.__CantRegistros
    def getPageSize(self):
        return self.__PageSize
    def getTotalPaginas(self):
        return self.__TotalPaginas
    def getPaginaActual(self):
        return self.__PaginaActual
    def setCantRegistros(self, value):
        self.__CantRegistros = value
        self.__CalcularCantPaginas()
    def setPageSize(self, value):
        self.__PageSize = value
    def __setTotalPaginas(self, value):
        self.__TotalPaginas = value
    def setPaginaActual(self, value):
        self.__PaginaActual = value
    def getStrPaginacion(self):
        aux = "Pagina: " + str(self.getPaginaActual())+ " De: " + str(self.getTotalPaginas())
        return aux
    def __CalcularCantPaginas(self):
        div = self.getCantRegistros()/self.getPageSize()
        if div >= 1 :
            mod = math.fmod(self.getCantRegistros(),self.getPageSize())
            if mod != 0:
                self.__setTotalPaginas(int(div) + 1) 
            else:
                self.__setTotalPaginas(int(self.getCantRegistros()/self.getPageSize()))
        else:
            self.__setTotalPaginas(1)
    def IrPaginaSiguiente(self):
        if self.getPaginaActual()< self.getTotalPaginas():
            self.setPaginaActual(self.getPaginaActual() + 1)
    def IrPaginaAnterior(self):
        if self.getPaginaActual()> 1 :
            self.setPaginaActual(self.getPaginaActual() - 1)
    def PuedeIrAPaginaSiguiente(self):
        if self.getPaginaActual()< self.getTotalPaginas():
            return True
        else:
            return False
    def PuedeIrAPaginaAnterior(self):
        if self.getPaginaActual()> 1:
            return True
        else:
            return False
    